﻿#ifndef FIVEHEADPRECISIONSEWING_H
#define FIVEHEADPRECISIONSEWING_H

#include "mctype/machinetypefun.h"

//--------------------------------------------------------------------------------
// 通讯命令定义

//--------------------------------------------------
// 归零和手动移动和电机使能的 控制参数 定义

// A板
#define	MT_HX				0x0003		// 机头移动电机	(归零)

#define	MT_LM1				0x0010		// 主轴1电机	(归零,正转,反转)
#define	MT_LN1				0x0011		// 针1电机		(归零,正转,反转)
#define	MT_LH1				0x0012		// 梭1电机		(归零,正转,反转)

#define	MT_LM2				0x0020		// 主轴2电机		(归零,正转,反转)
#define	MT_LN2				0x0021		// 针2电机		(归零,正转,反转)
#define	MT_LH2				0x0022		// 梭2电机		(归零,正转,反转)

#define	MT_LM3				0x0030		// 主轴3电机		(归零,正转,反转)
#define	MT_LN3				0x0031		// 针3电机		(归零,正转,反转)
#define	MT_LH3				0x0032		// 梭3电机		(归零,正转,反转)

#define	MT_LM4				0x0040		// 主轴4电机		(归零,正转,反转)
#define	MT_LN4				0x0041		// 针4电机		(归零,正转,反转)
#define	MT_LH4				0x0042		// 梭4电机		(归零,正转,反转)

#define	MT_LM5				0x0050		// 主轴5电机		(归零,正转,反转)
#define	MT_LN5				0x0051		// 针5电机		(归零,正转,反转)
#define	MT_LH5				0x0052		// 梭5电机		(归零,正转,反转)

//--------------------------------------------------

// 输出控制的 控制参数1 定义

#define	OT_LOOSE_THREAD1		0x0001	// 机头1 松紧线	(放松,夹紧)
#define	OT_LOOSE_THREAD2		0x0002	// 机头2 松紧线
#define	OT_LOOSE_THREAD3		0x0003	// 机头3 松紧线
#define	OT_LOOSE_THREAD4		0x0004	// 机头4 松紧线
#define	OT_LOOSE_THREAD5		0x0005	// 机头5 松紧线

#define	ThreadCuttingAction1				0x0011	// 机头1 剪线动作	(使能)
#define	ThreadCuttingAction2				0x0012	// 机头2 剪线动作
#define	ThreadCuttingAction3				0x0013	// 机头3 剪线动作
#define	ThreadCuttingAction4				0x0014	// 机头4 剪线动作
#define	ThreadCuttingAction5				0x0015	// 机头5 剪线动作

#define	OT_BLOW1				0x0021	// 机头1 吹气	(打开,关闭)
#define	OT_BLOW2				0x0022	// 机头2 吹气
#define	OT_BLOW3				0x0023	// 机头3 吹气
#define	OT_BLOW4				0x0024	// 机头4 吹气
#define	OT_BLOW5				0x0025	// 机头5 吹气

#define	OT_DCUT_THREAD1			0x0031	// 机头1 剪线	(打开,关闭)
#define	OT_DCUT_THREAD2			0x0032	// 机头2 剪线
#define	OT_DCUT_THREAD3			0x0033	// 机头3 剪线
#define	OT_DCUT_THREAD4			0x0034	// 机头4 剪线
#define	OT_DCUT_THREAD5			0x0035	// 机头5 剪线

#define	OT_ADD_NOIL1			0x0041	// 机头1 针加油	(打开,关闭)
#define	OT_ADD_NOIL2			0x0042	// 机头2 针加油
#define	OT_ADD_NOIL3			0x0043	// 机头3 针加油
#define	OT_ADD_NOIL4			0x0044	// 机头4 针加油
#define	OT_ADD_NOIL5			0x0045	// 机头5 针加油

#define	OT_ADD_HOIL1			0x0051	// 机头1 梭加油	(打开,关闭)
#define	OT_ADD_HOIL2			0x0052	// 机头2 梭加油
#define	OT_ADD_HOIL3			0x0053	// 机头3 梭加油
#define	OT_ADD_HOIL4			0x0054	// 机头4 梭加油
#define	OT_ADD_HOIL5			0x0055	// 机头5 梭加油

#define	OT_LIFT_UP1				0x0061	// 机头1 升降	(上升,下降)
#define	OT_LIFT_UP2				0x0062	// 机头2 升降
#define	OT_LIFT_UP3				0x0063	// 机头3 升降
#define	OT_LIFT_UP4				0x0064	// 机头4 升降
#define	OT_LIFT_UP5				0x0065	// 机头5 升降

#define OT_LOCK_FRM_CTRL		0x0070	// 锁框气缸 (打开,关闭)
#define OT_FLAP_UP				0x0071	// 翻板控制 (上升,下降)
#define OT_SCAN_CODE			0x0073	// 条码测试 (打开)

#define	OT_CLIP1					0x0081	// 机头1 夹线	(打开,关闭)
#define	OT_CLIP2					0x0082	// 机头2 夹线
#define	OT_CLIP3					0x0083	// 机头3 夹线
#define	OT_CLIP4					0x0084	// 机头4 夹线
#define	OT_CLIP5					0x0085	// 机头5 夹线

// 标准绗缝机型专用报警
#define	ERRQUI_NONE					0x00010000		// 没有错误
#define	ERRQUI_NO_POWER				0x00010001		// 没有上电
#define	ERRQUI_NO_AIR				0x00010002		// 气压不足
#define	ERRQUI_NOT_SAFE				0x00010003		// 安全区域介入
#define	ERRQUI_EXPIRATION			0x00010004		// 使用时限已到
#define	ERRQUI_DRIVER				0x00010005		// 驱动器报警
#define ERRQUI_FILL_DATA			0x00010006		// 填充数据错误
#define	ERRQUI_NOT_ALLOWED			0x00010007		// 不允许工作状态
#define	ERRQUI_CTRL_ERR				0x00010008		// 控制错误
#define	ERRQUI_FPGA_ERR				0x00010009		// 运动控制芯片版本错误
#define	ERRQUI_BUTTON_NOUP			0x0001000A		// 等待按钮抬起超时
#define	ERRQUI_FPGA_RESET			0x0001000B		// FPGA复位错误
#define	ERRQUI_NO_READY				0x0001000C		// 外设未就绪
#define	ERRQUI_NO_SEND_ERR			0x0001000D		// 传输数据错误
#define	ERRQUI_EDTION_ERR			0x0001000E		// 程序版本错误
#define	ERRQUI_WORK_DONE			0x0001000F		// 完成产量

#define ERRQUI_LMT_POSITIVE			0x00010010		// 正向限位
#define ERRQUI_LMT_NEGATIVE			0x00010011		// 反向限位
#define ERRQUI_RUN_ALM				0x00010012		// 运动报警
#define ERRQUI_RUN_LIMIT			0x00010013		// 运动限位
#define ERRQUI_RUN_EMS				0x00010014		// 运动急停
#define	ERRQUI_MV_PARA				0x00010015		// 运动参数错误
#define	ERRQUI_MC_PARA				0x00010016		// 机器参数错误
#define	ERRQUI_IN_PARA				0x00010017		// 输入参数错误
#define ERRQUI_CUTTER_NORMAL		0x00010018		// 文件正确
#define ERRQUI_CUTTER_WAIT			0x00010019		// 等待文件


#define	ERRQUI_MTZ_RIGHT			0x0001001F		// 归零成功
#define	ERRQUI_MTZ_ERROR			0x00010020		// 归零错误
#define	ERRQUI_COOR_SYSTM			0x00010021		// 坐标系统错误
#define	ERRQUI_OUT_RANGE			0x00010022		// 目标位置越界
#define	ERRQUI_X_LIT_POSI			0x00010023		// X正向限位
#define	ERRQUI_X_LIT_NEGA			0x00010024		// X反向限位
#define	ERRQUI_Y_LIT_POSI			0x00010025		// Y正向限位
#define	ERRQUI_Y_LIT_NEGA			0x00010026		// Y反向限位

#define	ERRQUI_NO_DATA				0x00010040          // 无数据
#define	ERRQUI_DATA_ERROR			0x00010041		// 数据错误


#define	ERRQUI_MS_NOT_ZERO			0x00010050		// 主轴不在零位
#define	ERRQUI_HK_NOT_ZERO			0x00010051		// 旋梭不在零位
#define	ERRQUI_MS_NOT_SYNC			0x00010052		// 针梭不同步
#define	ERRQUI_RO_NOT_SYNC			0x00010053		// 旋转不同步
#define	ERRQUI_CUTTER_NOT_POS		0x00010054		// 剪刀不在回位(注:该报错码是缝纫剪刀)
#define	ERRQUI_HEAD_NOT_HIGH		0x00010055		// 机头不在高位
#define	ERRQUI_HEAD_NOT_LOW			0x00010056		// 机头不在低位
#define	ERRQUI_LIGHTCURTAINS		0x00010057              // 光幕介入
#define	ERRQUI_UPER_TBREAK			0x00010058              // 面线断线
#define	ERRQUI_BOBBIN_TBREAK		0x00010059              // 底线断线
#define	ERRQUI_LIFT_TIMEOUT			0x0001005F          // 机头升降超时
#define	ERRQUI_CHANGE_BOBBIN		0x000100F0          // 更换梭芯

#define	ERRQUI_FEED_ROLLER			0x00010200		// 进料压辊 异常
#define	ERRQUI_DIS_ROLLER			0x00010201		// 出料压辊 异常
#define	ERRQUI_DIS_MATERIAL			0x00010202		// 出料压料 异常
#define	ERRQUI_TENS_DEVICE			0x00010203		// 张紧装置 异常
#define	ERRQUI_CLOTH_DEVICE			0x00010204		// 夹布装置 异常
#define	ERRQUI_EDGE_MOTOR			0x00010205		// 边切电机 阻塞
#define	ERRQUI_CROSS_MOTOR			0x00010206		// 横切电机 异常


#define	ERRQUI_INSTALLMENT_OK		0x00010300		// 密码设置成功
#define	ERRQUI_INSTALLMENT_FAIL		0x00010301		// 密码设置失败

#define	ERRQUI_MOTO_N_ALM			0x00011001		// 针电机报警
#define	ERRQUI_MOTO_H_ALM			0x00011002		// 梭电机报警
#define	ERRQUI_MOTO_X_ALM			0x00011003		// X电机报警
#define	ERRQUI_MOTO_Y_ALM			0x00011004		// Y电机报警

#define	ERRQUI_MOTO_N_FZ			0x00011011		// 针电机归零失败
#define	ERRQUI_MOTO_H_FZ			0x00011012		// 梭电机归零失败
#define	ERRQUI_MOTO_X_FZ			0x00011013		// X电机归零失败
#define	ERRQUI_MOTO_Y_FZ			0x00011014		// Y电机归零失败

#define	ERRQUI_CS_TIMEOUT			0x00012000		// 从板通讯超时
#define	ERRQUI_MOTO_X_ZERO			0x00012001		// X电机不在零位

#define     ERR_HEAD_NOT_HIGH		0x0055		// 机头不在高位
#define     ERR_X_LIT_POSI			0x0023		// X正向限位
#define     ERR_X_LIT_NEGA			0x0024		// X反向限位
#define     ERR_Y_LIT_POSI			0x0025		// Y正向限位
#define     ERR_Y_LIT_NEGA			0x0026		// Y反向限位
#define     ERR_COOR_SYSTM			0x0021		// 坐标系统错误
#define     ERR_OUT_RANGE			0x0022		// 目标位置越界
#define     ERR_NOT_SAFE			0x0003		// 安全区域介入
#define     ERR_AIR_POWER			0x002E		// 气压不足
#define     ERR_GUARDRAIL_OPEN		0x0039		// 安全门未关闭
#define     ERR_UPER_TBREAK			0x0058		// 面线断线
#define     ERR_CHANGE_BOBBIN		0x00F0		// 更换梭芯
#define     ERR_MS_NOT_ZERO			0x0050		// 主轴不在零位
#define     ERR_HK_NOT_ZERO			0x0051		// 旋梭不在零位
#define     ERR_NO_DATA				0x0040		// 无数据
#define     ERR_MC_PARA				0x0016		// 机器参数错误
#define     ERR_MV_PARA				0x0015		// 运动参数错误
#define     ERR_HEAD_NOT_SAFE		0x0060		// 机头不在安全区域
#define     ERR_NOT_ALLOWED			0x0007		// 不允许工作状态
#define     ERR_LIFT_TIMEOUT		0x005F		// 机头升降超时
#define     ERR_NOT_AT_POS			0x005E		// 模版不到位
#define     ERR_EXPIRATION			0x0004		// 使用时限已到
#define     ERR_IN_PARA				0x0017		// 输入参数错误

#define	ERR_HD1_CUTTER_NOT_POS	0x0071		// 机头1剪刀不在回位
#define	ERR_HD2_CUTTER_NOT_POS	0x0072		// 机头2剪刀不在回位
#define	ERR_HD3_CUTTER_NOT_POS	0x0073		// 机头3剪刀不在回位
#define	ERR_HD4_CUTTER_NOT_POS	0x0074		// 机头4剪刀不在回位
#define	ERR_HD5_CUTTER_NOT_POS	0x0075		// 机头5剪刀不在回位



//五头精密缝
class FiveHeadPrecisionSewing : public MachineTypeFun
{
    Q_OBJECT
public:
    FiveHeadPrecisionSewing();
    ~FiveHeadPrecisionSewing();
public:
    void initNinebtn1234();
    void initFileInfoLabel();

private:
    void initPatternsParasList();//花样参数
    void initMcParasList();//主控机器参数
    void initWkParasList();//主控工作参数

private:
    void initOutCtrlList();//控制动作
    void initShortCutList();//快捷动作
    void initAssistList();//辅助功能
    void initPatternSetList();//花样设置
    void initParaSetList();//参数设置

private:
    void initSensorList();//初始化传感器列表
    void initErrorCodeAndStateList();//初始化错误代码和状态列表

};

#endif // FIVEHEADPRECISIONSEWING_H
